import  akshare as ak
import pandas as pd

from stock_util import is_main_board

# 连续上涨 和持续放量交叉

lxsz = ak.stock_rank_lxsz_ths()

# 过滤主板股票且最新价<100元
filtered_stocks = lxsz[
    (lxsz['股票代码'].apply(is_main_board)) & # 主板
    (lxsz['最高价'] < 100)  # 假设列名为'最新价'，若实际为'现价'等需调整
]


cxfl = ak.stock_rank_cxfl_ths()

# 假设已存在 filtered_stocks 和 cxfl 两个DataFrame
# 步骤1：提取两个DF中重复的股票代码
common_codes = set(filtered_stocks['股票代码']).intersection(set(cxfl['股票代码']))

# 步骤2：筛选出重复代码对应的行
filtered_common = filtered_stocks[filtered_stocks['股票代码'].isin(common_codes)]
cxfl_common = cxfl[cxfl['股票代码'].isin(common_codes)]

# 步骤3：按股票代码合并数据（横向拼接）
# 方法1：使用merge（自动对齐列名，避免重复列）
merged_df = pd.merge(
    filtered_common,
    cxfl_common,
    on='股票代码',  # 按共同列合并
    how='inner',   # 仅保留重复代码的行
    suffixes=('_filtered', '_cxfl')  # 区分同名列
)

# 方法2（备选）：若需保留所有原始列（包括重复列）
# merged_df = pd.concat([filtered_common.set_index('股票代码'), cxfl_common.set_index('股票代码')], axis=1).reset_index()

# 输出结果
print(merged_df)